#ifndef __BUOLA_SCENE_TRANSFORM_CRTTRANSFORM_H__
#define __BUOLA_SCENE_TRANSFORM_CRTTRANSFORM_H__

#include <buola/scene/ctransform.h>
#include <buola/mat/transformations.h>

namespace buola { namespace scene {

class CRTTransform : public CTransform
{
public:
    CRTTransform(const mat::CQuat_d &pRot=mat::CQuat_d(),const mat::CVec3d &pTrans=mat::CVec3d(0,0,0),
                 const std::string &pName=std::string())
        :   CTransform(pName)
        ,   mTranslation(pTrans)
        ,   mRotation(pRot)
    {}

    void SetTranslation(const mat::CVec3d &pTrans);
    void SetRotation(const mat::CQuat_d &pRot);

    const mat::CVec3d &GetTranslation()   {   return mTranslation;    }
    const mat::CQuat_d &GetRotation()    {   return mRotation;       }

private:
    virtual void CalcLocalTransform();

private:
    mat::CVec3d mTranslation;
    mat::CQuat_d mRotation;
};

/*namespace scene*/ } /*namespace buola*/ }

#endif
